/* 
    数组扁平化
*/
function flat(arr) {
    // 声明空数组
    let result = [];
    // 遍历数组
    arr.forEach(item => {
        // 判断item是否为数组
        if (Array.isArray(item)) {
            result = result = result.concat(flat(item))
            // result.push(...flat(item))
        } else {
            result = result.concat(item)
            // result.push(item)
        }
    })
    return result;
}

function flat1(arr) {
    // 声明数组
    let result = [...arr];
    // 当result里面存在数组时
    while (result.some(item => Array.isArray(item))) {
        // [1, 2, 3, [4, 5, 6, [7, 8, 9], 10], 11]
        // result = [].concat([1, 2, 3, [4, 5, 6, [7, 8, 9], 10], 11]) // [1,2,3,4,5,6,[7,8,9],10,11]
        result = [].concat(...result)
        console.log(result);
    }
    return result;
}